package com.glink.manage.vo.equip;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.glink.common.serializer.JsonDate3DeSerializer;
import com.glink.common.serializer.JsonDate3Serializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author xum
 * @since 2024/7/3
 **/
@Data
public class PatrolIntelligentEquipNvrVO implements Serializable {

    @ApiModelProperty(value = "obj_id")
    private String objId;

    @ApiModelProperty(value = "所属工程")
    private String constructionWorkId;

    @ApiModelProperty(value = "所属工程名称")
    private String constructionWorkName;

    @ApiModelProperty(value = "所属施工现场")
    private String constructionWorkSiteId;

    @ApiModelProperty(value = "所属施工现场名称")
    private String constructionWorkSiteName;

    @ApiModelProperty(value = "设备名称")
    private String patrolDeviceName;

    @ApiModelProperty(value = "设备编码")
    private String patrolDeviceCode;

    @ApiModelProperty(value = "所属品牌(代码:BrandType,1海康;2大华;3集联科)")
    private String brand;

    @ApiModelProperty(value = "sip用户名")
    private String sipCode;

    @ApiModelProperty(value = "设备类型(代码:VideoDeviceType):" +
            "1室外轮式机器人;" +
            "2室内轮式机器人;" +
            "3挂轨机器人;" +
            "10摄像机;" +
            "11硬盘录像机;" +
            "12智能分析主机;" +
            "13无人机;" +
            "14声纹;" +
            "15无人机机巢;" +
            "20区域巡视主机;" +
            "21边缘节点;" +
            "90机器人巡视主机;" +
            "91无人机巡视主机")
    private String deviceType;

    @ApiModelProperty(value = "设备型号")
    private String deviceModel;

    @ApiModelProperty(value = "投运时间")
    @JsonDeserialize(using = JsonDate3DeSerializer.class)
    @JsonSerialize(using = JsonDate3Serializer.class)
    private Date runTime;

    @ApiModelProperty(value = "退运日期")
    @JsonDeserialize(using = JsonDate3DeSerializer.class)
    @JsonSerialize(using = JsonDate3Serializer.class)
    private Date outageTime;

    @ApiModelProperty(value = "运行状态")
    private String runStatus;

    @ApiModelProperty(value = "出厂编号")
    private String productCode;

    @ApiModelProperty(value = "登录账号")
    private String cameraAccount;

    @ApiModelProperty(value = "登录密码")
    private String cameraPassword;

    @ApiModelProperty(value = "IP地址")
    private String ipAddress;

    @ApiModelProperty(value = "端口号")
    private String portNum;

    @ApiModelProperty(value = "通道号(硬盘录像机开始通道号)")
    private String channelNumber;

    @ApiModelProperty(value = "硬盘录像机总存储(单位TB)")
    private String storage;

    @ApiModelProperty(value = "已接入摄像机数")
    private Integer equipNum;

    @ApiModelProperty(value = "生产厂家")
    private String manufacturer;

    @ApiModelProperty(value = "使用单位id")
    private String useUnit;

    @ApiModelProperty(value = "使用单位名称")
    private String useUnitName;

    @ApiModelProperty(value = "安装位置")
    private String place;

    @ApiModelProperty(value = "是否局域网,0为false，1为true")
    private String lan;

    @ApiModelProperty(value = "同步失败原因")
    private String syncFailMsg;

    @ApiModelProperty(value = "同步失败时间")
    private String syncFailTime;

    @ApiModelProperty(value = "同步时间")
    private String syncTime;

    @ApiModelProperty(value = "同步状态")
    private String syncStatus;

    @ApiModelProperty(value = "备注信息")
    private String remark;

    @ApiModelProperty(value = "设备主人")
    private String equipmentOwner;
}
